package com.hiultra.archive.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hiultra.common.core.domain.entity.ArcStorehouse;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hiultra.common.annotation.Excel;
import com.hiultra.common.core.domain.BaseEntity;

/**
 * 档案盒管理对象 arc_box
 *
 * @author ls
 * @date 2024-07-16
 */
public class ArcBox extends BaseEntity {
    private static final long serialVersionUID = 1L;
    //借阅状态1已借阅 2未借阅 3已归还
    public static final String GIVE_BACK_STATUS_GIVEN = "1";
    public static final String GIVE_BACK_STATUS_GIVEN_NO = "2";
    public static final String GIVE_BACK_STATUS_BACKED = "3";

    private String type;
    /**
     * ID
     */
    private String boxId;

    /**
     * 盒号
     */
    @Excel(name = "盒号")
    private String boxCode;

    /**
     * 盒名称
     */
    private String boxName;

    /**
     * 盒标签号
     */
    @Excel(name = "档案盒条码")
    private String boxRfid;

    /**
     * rfid
     */
    private String rfid;

    @Excel(name = "档案区编号")
    private String areaNo;

    /**
     * 档案柜编号
     */
    @Excel(name = "档案柜编号")
    private String cabinetNo;

    /**
     * 库位号
     */
    @Excel(name = "库位号")
    private String houseLocationNo;
    /**
     * 在库状态
     */
    @Excel(name = "在库状态", dictType = "in_out_status")
    private String inStockStatus;

    @Excel(name = "借阅状态", dictType = "borrow_flag")
    private String giveBackStatus;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /**
     * 是否写卡 0-否 1-是
     */
    private Integer status;
    /**
     * 规格
     */
    @Excel(name = "盒规格")
    private String specs;
    /**
     * 描述
     */
    @Excel(name = "描述")
    private String describ;

    /**
     * 删除标识
     */
    private Integer delflag = 0;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;

    private ArcStorehouse storehouse;

    public ArcStorehouse getStorehouse() {
        return storehouse;
    }

    public void setStorehouse(ArcStorehouse storehouse) {
        this.storehouse = storehouse;
    }

    private String orgNo;

    private String roomNo;

    /**
     * 档案盒状态
     */
    private String boxStatus;

    /**
     * 记录时间
     */
    private String recordTime;

    /**
     * 盒内户数
     */
    @Excel(name = "盒内户数")
    private String hshdNumInBox;

    /**
     * 总件数
     */
    @Excel(name = "总件数")
    private String tNum;

    /**
     * 总页数
     */
    @Excel(name = "总页数")
    private String tPage;

    /**
     * 保管期限01.永久 02.10年 03.30年
     */
    @Excel(name = "保管期限")
    private String keepDur;

    /**
     * 保密级别01公开 02商密
     */
    @Excel(name = "保密级别")
    private String confdLv;

    /**
     * 归档部门
     */
    @Excel(name = "归档部门")
    private String archDept;

    /**
     * 归档日志
     */
    @Excel(name = "归档日志")
    private String archLog;

    /**
     * 已装页数
     */
    @Excel(name = "已装页数")
    private String pagesInNum;

    /**
     * 已装袋数
     */
    @Excel(name = "已装袋数")
    private String baggedNum;

    /**
     * 客户档案盒说明
     */
    @Excel(name = "客户档案盒说明")
    private String tBagged;

    /**
     * 管理单位
     */
    @Excel(name = "管理单位")
    private String mgtOrgNo;

    /**
     * 客户档案库房标识
     */
    @Excel(name = "客户档案库房标识")
    private String archWhId;

    /**
     * 盒满标志02.是 01.否
     */
    @Excel(name = "盒满标志")
    private String boxFullFlag;

    /**
     * 客户标识
     */
    @Excel(name = "客户标识")
    private String custId;

    /**
     * 用户编号
     */
    @Excel(name = "用户编号")
    private String custNo;

    /**
     * 用户名称
     */
    @Excel(name = "用户名称")
    private String custName;

    /**
     * 转存标志02.是 01.否
     */
    @Excel(name = "转存标志")
    private String dumpFlag;

    /**
     * 存放位置1室01区01柜01节01层01盒
     */
    @Excel(name = "存放位置")
    private String storLoc;

    /**
     * AB面
     */
    @Excel(name = "AB面")
    private String abSide;

    /**
     * 节编号
     */
    @Excel(name = "节编号")
    private String nodesNo;

    /**
     * 层号
     */
    @Excel(name = "层号")
    private String layerNo;

    /**
     * 位号
     */
    @Excel(name = "位号")
    private String locNo;

    /**
     * 归档模式04多户一盒01一户一袋02一户一盒03按时间流水
     */
    @Excel(name = "归档模式")
    private String archMode;

    /**
     * 档案对象类型DC	客户
     * DG	发电客户
     * DO	其它
     * DU用电客户
     */
    @Excel(name = "档案对象类型")
    private String archObjType;

    /**
     * 档案类型08	关口档案
     * 06	个人客户档案
     * 01	高压用电户档案
     * 02	低压非居用电户档案
     * 03	低压居民用电户档案
     * 04	高压发电户档案
     * 05	低压发电户档案
     * 99	其他
     * 07组织客户档案
     */
    @Excel(name = "档案类型")
    private String mtrlType;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getRfid() {
        return rfid;
    }

    public void setRfid(String rfid) {
        this.rfid = rfid;
    }

    public String getHshdNumInBox() {
        return hshdNumInBox;
    }

    public void setHshdNumInBox(String hshdNumInBox) {
        this.hshdNumInBox = hshdNumInBox;
    }

    public String gettNum() {
        return tNum;
    }

    public void settNum(String tNum) {
        this.tNum = tNum;
    }

    public String gettPage() {
        return tPage;
    }

    public void settPage(String tPage) {
        this.tPage = tPage;
    }

    public String getKeepDur() {
        return keepDur;
    }

    public void setKeepDur(String keepDur) {
        this.keepDur = keepDur;
    }

    public String getConfdLv() {
        return confdLv;
    }

    public void setConfdLv(String confdLv) {
        this.confdLv = confdLv;
    }

    public String getArchDept() {
        return archDept;
    }

    public void setArchDept(String archDept) {
        this.archDept = archDept;
    }

    public String getArchLog() {
        return archLog;
    }

    public void setArchLog(String archLog) {
        this.archLog = archLog;
    }

    public String getPagesInNum() {
        return pagesInNum;
    }

    public void setPagesInNum(String pagesInNum) {
        this.pagesInNum = pagesInNum;
    }

    public String getBaggedNum() {
        return baggedNum;
    }

    public void setBaggedNum(String baggedNum) {
        this.baggedNum = baggedNum;
    }

    public String gettBagged() {
        return tBagged;
    }

    public void settBagged(String tBagged) {
        this.tBagged = tBagged;
    }

    public String getMgtOrgNo() {
        return mgtOrgNo;
    }

    public void setMgtOrgNo(String mgtOrgNo) {
        this.mgtOrgNo = mgtOrgNo;
    }

    public String getArchWhId() {
        return archWhId;
    }

    public void setArchWhId(String archWhId) {
        this.archWhId = archWhId;
    }

    public String getBoxFullFlag() {
        return boxFullFlag;
    }

    public void setBoxFullFlag(String boxFullFlag) {
        this.boxFullFlag = boxFullFlag;
    }

    public String getCustId() {
        return custId;
    }

    public void setCustId(String custId) {
        this.custId = custId;
    }

    public String getCustNo() {
        return custNo;
    }

    public void setCustNo(String custNo) {
        this.custNo = custNo;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getDumpFlag() {
        return dumpFlag;
    }

    public void setDumpFlag(String dumpFlag) {
        this.dumpFlag = dumpFlag;
    }

    public String getStorLoc() {
        return storLoc;
    }

    public void setStorLoc(String storLoc) {
        this.storLoc = storLoc;
    }

    public String getAbSide() {
        return abSide;
    }

    public void setAbSide(String abSide) {
        this.abSide = abSide;
    }

    public String getNodesNo() {
        return nodesNo;
    }

    public void setNodesNo(String nodesNo) {
        this.nodesNo = nodesNo;
    }

    public String getLayerNo() {
        return layerNo;
    }

    public void setLayerNo(String layerNo) {
        this.layerNo = layerNo;
    }

    public String getLocNo() {
        return locNo;
    }

    public void setLocNo(String locNo) {
        this.locNo = locNo;
    }

    public String getArchMode() {
        return archMode;
    }

    public void setArchMode(String archMode) {
        this.archMode = archMode;
    }

    public String getArchObjType() {
        return archObjType;
    }

    public void setArchObjType(String archObjType) {
        this.archObjType = archObjType;
    }

    public String getMtrlType() {
        return mtrlType;
    }

    public void setMtrlType(String mtrlType) {
        this.mtrlType = mtrlType;
    }

    public String getAreaNo() {
        return areaNo;
    }

    public void setAreaNo(String areaNo) {
        this.areaNo = areaNo;
    }

    public String getGiveBackStatus() {
        return giveBackStatus;
    }

    public void setGiveBackStatus(String giveBackStatus) {
        this.giveBackStatus = giveBackStatus;
    }

    public String getOrgNo() {
        return orgNo;
    }

    public void setOrgNo(String orgNo) {
        this.orgNo = orgNo;
    }

    public String getRoomNo() {
        return roomNo;
    }

    public void setRoomNo(String roomNo) {
        this.roomNo = roomNo;
    }

    public String getCabinetNo() {
        return cabinetNo;
    }

    public void setCabinetNo(String cabinetNo) {
        this.cabinetNo = cabinetNo;
    }

    public String getBoxId() {
        return boxId;
    }

    public void setBoxId(String boxId) {
        this.boxId = boxId;
    }

    public void setBoxCode(String boxCode) {
        this.boxCode = boxCode;
    }

    public String getBoxCode() {
        return boxCode;
    }

    public void setBoxName(String boxName) {
        this.boxName = boxName;
    }

    public String getBoxName() {
        return boxName;
    }

    public void setSpecs(String specs) {
        this.specs = specs;
    }

    public String getSpecs() {
        return specs;
    }

    public void setBoxRfid(String boxRfid) {
        this.boxRfid = boxRfid;
    }

    public String getBoxRfid() {
        return boxRfid;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setDescrib(String describ) {
        this.describ = describ;
    }

    public String getDescrib() {
        return describ;
    }

    public void setDelflag(Integer delflag) {
        this.delflag = delflag;
    }

    public Integer getDelflag() {
        return delflag;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setHouseLocationNo(String houseLocationNo) {
        this.houseLocationNo = houseLocationNo;
    }

    public String getHouseLocationNo() {
        return houseLocationNo;
    }

    public void setBoxStatus(String boxStatus) {
        this.boxStatus = boxStatus;
    }

    public String getBoxStatus() {
        return boxStatus;
    }

    public void setRecordTime(String recordTime) {
        this.recordTime = recordTime;
    }

    public String getRecordTime() {
        return recordTime;
    }

    public void setInStockStatus(String inStockStatus) {
        this.inStockStatus = inStockStatus;
    }

    public String getInStockStatus() {
        return inStockStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("boxId", getBoxId())
                .append("boxCode", getBoxCode())
                .append("boxName", getBoxName())
                .append("specs", getSpecs())
                .append("boxRfid", getBoxRfid())
                .append("createDate", getCreateDate())
                .append("status", getStatus())
                .append("describ", getDescrib())
                .append("delflag", getDelflag())
                .append("updateDate", getUpdateDate())
                .append("houseLocationNo", getHouseLocationNo())
                .append("boxStatus", getBoxStatus())
                .append("recordTime", getRecordTime())
                .append("inStockStatus", getInStockStatus())
                .toString();
    }
}
